
/**
 * @description: 手机参数类
 * @return {*}
 */
function PhoneParam() {
    /**
     * @description: 修改手机参数
     * @param {*} paramObj 从后台获取的参数json表
     * @return {*} 
     */
    this.main = function (object) {
        console.log(object);
        // let object = JSON.parse(paramObj);
        for (let key in object) {
            if (Object.hasOwnProperty.call(object, key)) {
                let element = object[key];
                this.setParam(key, element);
            }
        }
        console.log("完成-设置手机参数");
    }

    /**
     * @description: 设置指定手机参数
     * @param {String} key 待设置的手机参数
     * @param {String} value 手机参数值
     * @return {object} object 返回对象 
     */
    this.setParam = function (key, value) {
        console.log(typeof key, typeof value);
        console.log(key, value);
        let shellValue = "setprop " + key + " '" + value + "'";
        console.log("shellValue: ", shellValue);
        let result = shell(shellValue, true);
        console.log(result);
        // ShellResult{code=0, error='', result=''}  --成功
        // ShellResult{code=1, error='sh: <stdin>[1]: syntax error: '(' unexpected', result=''}  --失败
        return result;
    }

    /**
     * @description: 获取指定手机参数的值
     * @param {String} key 手机参数
     * @return {object} object 返回对象
     */
    this.getParam = function (key) {
        // ShellResult{code=0, error='', result='186(C00)R2'}
        return shell("getprop " + key, true);
    }
}

const PhoneParamObj = new PhoneParam();

let json = {
    "ro.product.manufacturer": "VIVO", //制造商，随你修改
    // "ro.hardware": "msmnile",
    // "ro.build.version.release": "8.1.0", //公布的版本，显示为手机信息的系统版本
    "ro.build.version.codename": "REL", // 版本编码名称，一般不显示也没必要修改
    // "ro.build.host": "cn-central-cj-xvj8agt627808965921593-7728991828-162s9", //系统主机名，可以随便起个英文字母表示的名字
    // "ro.build.date.utc": 1576210224000,  //系统编译的时间（数字版），没必要修改
    "ro.build.tags": "release-keys", //系统标记，无意义，不修改
    // "ro.product.cpu.abilist64": "armeabi",
    "ro.product.name": "V1916A", //机器名，随你修改
    "ro.product.brand": "VIVO", //机器品牌，随你修改
    // "ro.build.id": "HUAWEICOL-AL10", //build的版本号，一般在编译时产生不必修改
    "ro.bootloader": "unknown",
    // "net.hostname": "COL-v4s8r7khfor6zzrp",
    // "ro.build.version.sdk.str": "27",
    "ro.product.model": "V1916A", //机器型号，可以修改成自己认为牛逼的名字 
    // "ro.build.display.id": "COL 8.2.0.185(C00)R2(C00)",
    "ro.build.user": "build", //显示的版本号，可以任意修改，显示为手机信息的内部版本号 
    // "gsm.version.baseband": "21C20B369S009C000,21C20B369S009C000",
    "ro.product.device": "AOSP", //设备名，随你修改
    "ro.debuggable": 1,
    // "ro.build.type": "user",
    "ro.serialno": "0013cb80",
    "ro.build.fingerprint": "google/android_x86/x86:7.1.2/N2G48C/G955FXXU1AQJ5:user/release-keys", //系统指纹
    // "ro.product.cpu.abilist32": "armeabi-v7a",
    "ro.product.board": "V1916A", //主板名，随你修改 
    "ro.build.version.sdk": 25, //系统编译时，使用的SDK版本，勿修改
    // "ro.build.version.incremental": "185(C00)R2", //版本的增加说明，一般不显示也没必要修改
    "ro.build.version.preview_sdk": 0,
    // "ro.build.version.base_os": "HONOR/COL/HWCOL:8.1.0/HONORCOL185(C00)R2::user/release-keys",
    "ro.build.version.security_patch": "2017-10-05"
}

// let getJson = {};
// PhoneParamObj.main(json);
// for (let key in json) {
//     if (Object.hasOwnProperty.call(json, key)) {
//         // const element = object[key];
//         let shellResult = PhoneParamObj.getParam(key);
//         // console.log(typeof shellResult);
//         // console.log(shellResult.result);
//         getJson[key] = shellResult.result.match(/.{1,}/g)[0];
        
//     }
// }

// console.log(getJson);

console.log(PhoneParamObj.getParam("persist.sys.v-operator_name"));